Computers have become highly integrated in the workforce, in the home, in mobile devices, and many other places. Computers can process massive amounts of information quickly and efficiently. Software applications designed to run on computer systems allow users to perform a wide variety of functions including business applications, schoolwork, entertainment and more. Software applications are often designed to perform specific tasks, such as word processor applications for drafting documents, or email programs for sending, receiving and organizing email.
In many cases, software applications are designed to interact with other software applications or other computer systems. For example, internet browsers send user requests to web servers, and those web servers reply with a response to the user's request. Web servers and other computer systems may be configured to access data stores as part of responding to user requests. These data stores may store large amounts of information, and may include replicas that duplicate the data for added redundancy. In some cases, these replicas may be grouped together as replica sets or clusters. When one of the replicas of a replica set becomes unavailable and subsequently comes back online, the replica set has to be updated and reconfigured. During that reconfiguration, the replica set is unavailable to respond to data read or write requests.